package Threads.GeekBang_test.ThreadLocal_test;

//sync关键字，和ThreadLocal，是两种不同的思路，解决多线程中共享变量的问题
//sync：是通过上锁，让同一时间共享资源只能由一个线程访问
//threadLocal：让各个线程的数据隔离
public class test3 {
    //使用threadLocal解决
    private ThreadLocal<String> tl=new ThreadLocal<>();

    private String getContent(){
        return tl.get();
    }

    private void setConent(String content){
        tl.set(content);
    }

    public static void main(String[] args) {
        test3 test3=new test3();
        for (int i=0;i<5;i++){
            new Thread(()->{
                //使用syn关键字解决，但是效率太低了
                    test3.setConent(Thread.currentThread().getName() + "data");
                    System.out.println("--------");
                    System.out.println(Thread.currentThread().getName() + test3.getContent());

            },"t"+i).start();
        }
    }
}
